// 1. 引入二次封装好的axios
import request from '@/utils/request';

// 2. 使用枚举来保存目标地址
enum Api {
  // 获取spulist列表数据
  getSpuListApi = '/admin/product',
  // 添加spuInfo数据
  saveSpuInfoApi = '/admin/product/saveSpuInfo',
  // 更新spuInfo数据
  updateSpuInfoApi = '/admin/product/updateSpuInfo',

  // 删除spuInfo数据
  deleteSpuInfoApi = '/admin/product/deleteSpu',
  // 所有的销售属性
  baseSaleAttrListApi = '/admin/product/baseSaleAttrList',
  // 所有的品牌列表数据
  trademarkListApi = '/admin/product/baseTrademark/getTrademarkList',
  // 根据spuId 重新获取获取对应的图片列表
  getSpuImageListApi = '/admin/product/spuImageList',
  // 根据spuId 重新获取销售属性列表
  getSpuSaleAttrListApi = '/admin/product/spuSaleAttrList',
}

// 定义接口函数

// 3. 定义获取spu列表项数据的接口函数
export const reqGetSpuListData = (
  page: number,
  limit: number,
  category3Id: number
) => {
  return request.get(
    Api.getSpuListApi + `/${page}/${limit}?category3Id=` + category3Id
  );
};

// 4. 定义获取所有的品牌列表数据的接口函数
export const reqGetAllTrademarkListData = () => {
  return request.get(Api.trademarkListApi);
};

// 5. 定义获取所有的销售属性的接口函数
export const reqGetAllBaseSaleAttrListData = () => {
  return request.get(Api.baseSaleAttrListApi);
};

// 6. 添加spuInfo
export const reqSaveSpuInfoData = (spuInfo) => {
  return request.post(Api.saveSpuInfoApi, spuInfo);
};

// 7. 删除spuInfo数据
export const reqDeleteSpuInfo = (spuId: number) => {
  return request.delete(Api.deleteSpuInfoApi + `/${spuId}`);
};

// 8. 根据spuId 获取图片列表
export const reqGetSpuImageListData = (spuId: number) => {
  return request.get(Api.getSpuImageListApi + `/${spuId}`);
};
// 9. 根据spuId 获取基本销售属性及值
export const reqGetSpuSaleAttrListData = (spuId: number) => {
  return request.get(Api.getSpuSaleAttrListApi + `/${spuId}`);
};

// 10. 更新spuInfo数据
export const reqUpdateSpuInfoApi = (spuInfo) => {
  return request.post(Api.updateSpuInfoApi, spuInfo);
};
